import { AfterViewInit, Directive, ElementRef, HostBinding, HostListener, Input, Renderer2 } from '@angular/core';
import { __values } from 'tslib';

@Directive({
  selector: '[appHighlightstudent]'
})
export class HighlightstudentDirective implements AfterViewInit {
  

  private showhight:boolean=false;
  @Input('appHighlightstudent')
  set setShowhight(value:boolean|undefined){
    if (typeof value === 'boolean') {
      this.showhight = value;
    }
  };

  // @Input()
  // showhight:boolean|undefined;

  constructor(private element:ElementRef,private render:Renderer2) { }
  ngAfterViewInit(): void {
  }
  // // HostListener绑定指令的宿主元素 mouseover事件，添加宿主元素的样式
  // @HostListener("mouseover")
  // onMouseover(){
  //   this.render.addClass(this.element.nativeElement,"highlight-divstudent");
  // }
  //   // HostListener绑定指令的宿主元素 mouseleave事件，移除宿主元素的样式
  // @HostListener("mouseleave")
  // onMouseLeave(){
  //   this.render.removeClass(this.element.nativeElement,"highlight-divstudent");
  // }

   // HostListener绑定指令的宿主元素 mouseover事件，添加宿主元素的样式
   @HostListener("mouseover")
   onMouseover(){
     this.showhight=true;
   }
     // HostListener绑定指令的宿主元素 mouseleave事件，移除宿主元素的样式
   @HostListener("mouseleave")
   onMouseLeave(){     
     this.showhight=false;
   }

  // HostBinding 绑定指令的宿主元素 添加class
  // @HostBinding("class.highlight-divstudent") highlightdivstudent=true;

  // HostBinding 绑定指令的宿主元素 动态添加class （计算属性来动态地设置属性）
  // 如果宿主使用appHighlightstudent指令，同时添加输入属性 [showhight]="showhight"
  // <div class="divstudent" appHighlightstudent [showhight]="showhight">
  @HostBinding("class.highlight-divstudent") get highlightdivstudentClass() 
  { 
    return this.showhight;
  }

}
